A significant amount of content is stored in content repositories. The access and manipulation of this content is typically restricted using various types of access control mechanisms. In conventional systems, accessing content in a content repository is a two-stage process. In the first stage, all content matching a query issued by a user is obtained. In a second phase, access control mechanisms are applied to the retrieved content in order to identify only the content that the user is permitted to access. This limited set of content is then provided to the user. This two-stage process introduces a significant amount of latency in the retrieval of content from the content repositories.